///////////////////////////////////////////////////////////
//  ResolveDBRequest.h
//  Implementation of the Class ResolveDBRequest
//  Created on:      23-sep-2007 21:26:24
///////////////////////////////////////////////////////////

#if !defined(EA_CBB0AE2A_0CD4_4dc0_93DB_B030D660B624__INCLUDED_)
#define EA_CBB0AE2A_0CD4_4dc0_93DB_B030D660B624__INCLUDED_

#include "OQLAndCondition.h"
#include "OQLOrCondition.h"
#include "OQLSimpleCondition.h"
#include "OQLMinCondition.h"
#include "OQLMaxCondition.h"
#include "OQLMediaCondition.h"
#include "../../common/fuentes/Persistent.h"
#include "../../common/fuentes/FactoryPersistent.h"
#include "../../indexado/fuentes/RecordHandler.h"
#include "OperationList.h"
#include "../../indexado/fuentes/IndexOrganization.h"
#include "../../indexado/fuentes/OrganizationCommons.h"
#include "../../common/fuentes/Station.h"
#include "../../common/fuentes/SampleSounding.h"
#include "../../common/fuentes/properties.h"
#include "../../common/fuentes/SampleSourcesafe.h"
#include "../../common/fuentes/CloudLayer.h"
#include "../../common/fuentes/ConditionAtm.h"
#include "../../common/fuentes/ConditionAtm.h"
#include "../../indexado/fuentes/NumberUtil.h"
#include "IntersectionOperation.h"
#include "UnionOperation.h"
#include "ListUtil.h"
#include "IndexException.h"
#include <sstream>
#include <string>
#include <map>

class OQLMediaCondition;

class ResolveDBRequest
{
private:
	//static Cproperties proper;

	
public:
	ResolveDBRequest();
	virtual ~ResolveDBRequest();
	ListPersistent resolveAnd(OQLAndCondition& condition);
	ListPersistent resolveOr(OQLOrCondition& condition);
	ListPersistent resolveSimple(OQLSimpleCondition& condition);
	void savePersistent(std::string table, Persistent* object);
	ListPersistent resolveMin(OQLMinCondition& condition);
	ListPersistent resolverMax(OQLMaxCondition& condition);
	double resolveMedia(OQLMediaCondition& condition);
	ListPersistent resolverRange(OQLSimpleCondition& inf, OQLSimpleCondition& sup);
	static Cproperties proper;
};
#endif // !defined(EA_CBB0AE2A_0CD4_4dc0_93DB_B030D660B624__INCLUDED_)
